package com.casic.ops.utils.pipeline;

import com.casic.ops.entity.domain.pipeline.PipelineLoggerDO;
import com.casic.ops.entity.domain.pipeline.PipelineNodeInfoDO;
import com.casic.ops.entity.dto.pipeline.PipelineLoggerDTO;
import com.casic.ops.entity.dto.pipeline.PipelineNodeInfoDTO;
import org.springframework.stereotype.Component;

import java.util.ArrayList;
import java.util.List;
import java.util.Objects;

/**
 * 流水线节点配置信息转换类
 * @author cww
 * @date 2022/6/17
 */
@Component
public class PipelineNodeInfoConvertor {

    public PipelineNodeInfoDO toDO(PipelineNodeInfoDTO pipelineNodeInfoDTO){
        if(Objects.isNull(pipelineNodeInfoDTO)){
            return null;
        }
        PipelineNodeInfoDO pipelineNodeInfoDo=new PipelineNodeInfoDO();
        pipelineNodeInfoDo.setInfo(pipelineNodeInfoDTO.getInfo());
        pipelineNodeInfoDo.setNodeUuid(pipelineNodeInfoDTO.getNodeUuid());
        pipelineNodeInfoDo.setDeleted(pipelineNodeInfoDTO.getDeleted());
        pipelineNodeInfoDo.setGmt_create(pipelineNodeInfoDTO.getGmtCreate());
        pipelineNodeInfoDo.setGmt_modified(pipelineNodeInfoDTO.getGmtModified());
        pipelineNodeInfoDo.setCreator(pipelineNodeInfoDTO.getCreator());
        pipelineNodeInfoDo.setNodeName(pipelineNodeInfoDo.getNodeName());
        return pipelineNodeInfoDo;
    }


    public PipelineNodeInfoDTO toDTO(PipelineNodeInfoDO pipelineNodeInfoDo){
        if (Objects.isNull(pipelineNodeInfoDo)){
            return null;
        }
        PipelineNodeInfoDTO pipelineNodeInfoDTO=new PipelineNodeInfoDTO();
        pipelineNodeInfoDTO.setInfo(pipelineNodeInfoDo.getInfo());
        pipelineNodeInfoDTO.setNodeUuid(pipelineNodeInfoDo.getNodeUuid());
        pipelineNodeInfoDTO.setDeleted(pipelineNodeInfoDo.getDeleted());
        pipelineNodeInfoDTO.setGmtCreate(pipelineNodeInfoDo.getGmt_create());
        pipelineNodeInfoDTO.setUuid(pipelineNodeInfoDo.getUuid());
        pipelineNodeInfoDTO.setGmtModified(pipelineNodeInfoDo.getGmt_modified());
        pipelineNodeInfoDTO.setCreator(pipelineNodeInfoDo.getCreator());
        pipelineNodeInfoDTO.setId(pipelineNodeInfoDo.getId());
        return pipelineNodeInfoDTO;
    }

    public List<PipelineNodeInfoDTO> toDTOList(List<PipelineNodeInfoDO> list){
        List<PipelineNodeInfoDTO> pipelineNodeInfoDTOList=new ArrayList<>();
        for(PipelineNodeInfoDO pipelineNodeInfoDo:list){
            pipelineNodeInfoDTOList.add(toDTO(pipelineNodeInfoDo));
        }
        return pipelineNodeInfoDTOList;
    }

    public List<PipelineNodeInfoDO> toDOList(List<PipelineNodeInfoDTO> list){
        List<PipelineNodeInfoDO> pipelineNodeInfoDOList=new ArrayList<>();
        for(PipelineNodeInfoDTO pipelineNodeInfoDTO:list){
            pipelineNodeInfoDOList.add(toDO(pipelineNodeInfoDTO));
        }
        return pipelineNodeInfoDOList;
    }


}
